package algorithm.sort.other;

/**
 * @author: Oliver
 * @time: 2020/6/1/18:38
 * <p>
 * 求x  n 次方
 * x n 次方 等于 n= 偶数 x  n/2 * x n/2
 * n= 奇数  x  n/2 * x n/2 * x
 * 当 n =0 时 x n =1
 * 当 n为负数时，则为结果的 1/res
 * x 是否为负数不需要管
 */
public class Pow {
    public static int doPow(int x, int n) {
        if (n == 0) {
            return 1;
        }
        int t = pow(x, n / 2);
        return n % 2 != 0 ? t * t * x : t * t;
    }

    public static int pow(int x, int n) {
        return n > 0 ? doPow(x, n) : 1 / doPow(x, n);

    }

    public static void main(String[] args) {
        System.out.println(pow(3, 3));
    }
}
